<?php

class ReferenciasModel extends Referencias{
	
	public function insertReferencias($arr){
		try {
			$obj = new Referencias();
			foreach($arr as $chave => $valor){
				if($chave != 'files'){
					$chave = ucfirst($chave);
					$met = 'set'.$chave;
					$obj->$met($valor);
				}
			}
			$tot_f = count($arr['files']);
			if($tot_f > 0){
				for($i = 0; $i < $tot_f; $i++){		
					$met = 'setImagem'.$i;		
					if($arr['files'][$i]['name'] != ''){
						$ext = pathinfo ($arr['files'][$i]['name']);
						$path = $arr['files'][$i]['tmp_name'];
						$nome = md5(microtime()).".".$ext['extension'];
						$new_path = '../imagens/referencias/'.$nome;
						if(!move_uploaded_file($path, $new_path)){
							throw new Exception ( "Ocorreu um erro ao salvar a imagem!" );
						}
						$obj->$met($nome);
					}else{
						$obj->$met(0);
					}
				}
			}
			$db = new Db;
			$db->Insert('referencias',$obj);
			$this->lista = $db->res;
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function updateReferencias($arr){
		try {
			$obj = new Referencias();
			foreach($arr as $chave => $valor){
				if($chave != 'files'){
					$chave = ucfirst($chave);
					$met = 'set'.$chave;
					$valor = "'".$valor."'";
					$obj->$met($valor);
				}
			}
			$tot_f = count($arr['files']);
			if($tot_f > 0){
				for($i = 0; $i < $tot_f; $i++){		
					$met = 'setImagem'.$i;		
					if($arr['files'][$i]['name'] != ''){
						$ext = pathinfo ($arr['files'][$i]['name']);
						$path = $arr['files'][$i]['tmp_name'];
						$nome = md5(microtime()).".".$ext['extension'];
						$new_path = '../imagens/referencias/'.$nome;
						if(!move_uploaded_file($path, $new_path)){
							throw new Exception ( "Ocorreu um erro ao salvar a imagem!" );
						}
						$obj->$met("'".$nome."'");
					}else{
						$obj->$met($arr['dados']['imagem']);
					}
				}
			}
			$db = new Db;
			$db->Update('referencias',$obj);
			$this->lista = $db->res;
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function deleteReferencias($id){
		try {
			$db = new Db;
			$db->Delete('referencias',$id);
			$this->lista = $db->res;
		} catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function consultarReferencias($parametros){
		try {
			$campos = array('*');
			if($parametros != ''){
				$where = 'idreferencias = '.$parametros;
			}else{
				$where = '';
			}
			$order = 'idreferencias DESC LIMIT 1';
			$db = new Db;
			$db->Select('referencias',$campos,$where,$order);
			$this->lista = $db->res[0];
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function pesoReferencias($parametros){
		try {
			$campos = array('*');
			$where = 'cor = "'.$parametros['cor'].'" AND tamanho = "'.$parametros['tam'].'" AND idprodutos = '.$parametros['id'];
			$order = 'idreferencias DESC LIMIT 1';
			$db = new Db;
			$db->Select('referencias',$campos,$where,$order);
			$this->lista = $db->res[0];
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function imagensReferencias($parametros){
		try {
			$campos = array('*');
			$where = 'idprodutos = '.$parametros;
			$order = 'destaque DESC';
			$db = new Db;
			$db->Select('referencias',$campos,$where,$order);
			$view = new ReferenciasView();
			$this->lista = $view->imagens($db->res);
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function tamanhosReferencias($parametros){
		try {
			$campos = array('*');
			$where = 'cor = "'.$parametros['cor'].'"';
			$order = 'cor DESC';
			$db = new Db;
			$db->Select('referencias',$campos,$where,$order);
			$view = new ReferenciasView();
			$this->lista = $view->tamanhos($db->res);
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function listarReferencias($parametros){
		try {
			$campos = array('*');
			$where = '';
			$order = 'idreferencias DESC';
			$db = new Db;
			$db->Select('referencias AS r LEFT JOIN produtos AS p ON r.idprodutos = p.idprodutos',$campos,$where,$order);
			$view = new ReferenciasView();
			$this->lista = $view->listar($db->res);
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function visualizarReferencias($parametros){
		try {
			$campos = array('*');
			$where  = 'idprodutos = '.$parametros.' GROUP BY cor ';
			$order  = ' cor ASC';
			$db = new Db;
			$db->Select('referencias',$campos,$where,$order);
			$view = new ReferenciasView();
			$this->lista = $view->visualizar($db->res);
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
}
?>